package rbac.view;

import java.util.Scanner;

/**
 * 主界⾯实现
 */

public class MainView {
    // 定义静态变量 input，⽤于接收⽤户输⼊
    public static Scanner input;

    // 静态代码块，在类加载时初始化 Scanner对象
    static {
        input = new Scanner(System.in);
    }

    /**
     * 输出主界⾯菜单
     * 使⽤⽂本块（text blocks）语法实现多⾏字符串输出
     * ⽂本块是Java 13引⼊的特性，⽤三个双引号（"""）包裹多⾏字符串，避免⼿动换⾏和转义
     */
    public static void printMenu(){
        String menu = """
                ---------------------
                       RBAC系统
                ---------------------
                |     0...退出系统    |
                |     1...部⻔管理    |
                |     2...⻆⾊管理    |
                |     3...⽤户管理    |
                ---------------------
                请输⼊选项：""";
        System.out.print(menu);
    }

    public static void show() {
        String menuChoice; // ⽤于存储⽤户输⼊的选项
        do {
            printMenu();
            menuChoice = input.nextLine();
            switch (menuChoice) {
                case "0" -> System.out.println("成功退出系统，欢迎再次使⽤！");
                case "1" -> DeptView.show(); //进⼊部⻔管理界⾯
                case "2" -> RoleView.show(); //进⼊⻆⾊管理界⾯
                case "3" -> UserView.show(); //进⼊⽤户管理界⾯
                default -> System.out.println("输⼊⾮法，请输⼊正确的菜单编号！");
            }
        } while (!"0".equals(menuChoice));
        input.close();
    }
}

